Software programs traditionally are tested using a variety of tests before the software programs are sold to end users. The purpose of such tests usually is to simulate certain conditions to determine whether the software programs are capable of operating under those conditions. Each test typically is written as a stand-alone test having its own code, which is separate from the code of the other tests. In fact, different frameworks may be used for the different tests. A framework allows software having a generic functionality to be selectively changed by user code to provide application specific software. Writing and maintaining separate code and/or using different frameworks for the various tests may consume substantial time and/or resources.
Moreover, each test often specifies a predetermined fixed number of clients to be allocated for participation in the test. Restricting the number of clients in this manner hinders the use of the test for testing scenarios for which the test was not initially configured.